//! # Window - 操作窗口的 Api 模块
//!
//! 如果需要操作窗口，可以使用此模块提供的 Api。

use crate::util::set_window_materia;

/// 设置窗口主题
///
/// # 参数
///
/// * `dark` - 是否为深色模式，默认为 None，即跟随系统
///
/// # 返回值
///
/// * [`Result<(), String>`] - 结果
#[tauri::command]
pub fn set_window_theme(dark: Option<bool>, window: tauri::Window) -> Result<(), String> {
    set_window_materia(&window, dark)
}

/// 设置窗口的可见性
///
/// # 参数
///
/// * `visible` - 是否可见
///
/// # 返回值
///
/// * [`Result<(), String>`] - 结果
#[tauri::command]
pub fn set_window_visibility(visible: bool, window: tauri::Window) -> Result<(), String> {
    crate::util::set_window_visibility(&window, visible)
}

/// 判断窗口是否可见
///
/// # 参数
///
/// * `window` - 窗口
///
/// # 返回值
///
/// * [`Result<bool, String>`] - 结果
#[tauri::command]
pub fn is_window_visible(window: tauri::Window) -> Result<bool, String> {
    window.is_visible().map_err(|e| e.to_string())
}
